package org.streets.workflow.engine;

import java.util.List;

import org.streets.workflow.engine.event.IEdgeEventListener;
import org.streets.workflow.model.net.WFEdge;


/**
 * 
 * @author app
 * @version 1.0 Created on Mar 18, 2009
 */
public interface IEdge {
	/**
	 * @return
	 */
	public String getEdgeId();
	/**
	 * 
	 * @param <T>
	 * @return
	 */
	public <T extends WFEdge> T getEdgeModel();
	/**
	 * 弧的权
	 * 
	 * @return
	 */
	public int getWeight();

	/**
	 * 获取输出到达的节点实例
	 * 
	 * @return
	 */
	public INode getLeavingNode();

	/**
	 * @param node
	 */
	public void setLeavingNode(INode node);

	/**
	 * @return
	 */
	public INode getEnteringNode();

	/**
	 * @param nodeInst
	 */
	public void setEnteringNode(INode node);
	/**
	 * 获取所有监听器
	 * @return
	 */
	public List<IEdgeEventListener> getEventListeners();
}
